home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_10_06
/
1006046a
< prev
next >
Wrap
Text File
|
1991-11-05
|
2KB
|
78 lines
LISTING ONE
#ifndef CHANNEL_HPP
#define CHANNEL_HPP
extern "C" {
#include "d40.h"
#include "d40lib.h"
#include <stdlib.h>
#include <bios.h>
#include <dos.h>
#include <io.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <sys\stat.h>
}
// maximum number of touchtones to get
#define MAXDIGITS 8
// output extension for voice files
#define SPEECH_EXT ".VOX"
// used to store user recordings
#define RECORD_FNAME "OUTPUT"
class CHANNEL {
private:
int lineno;
char msgname[9]; // message filename
// buffer for keypad digits
unsigned char digits[MAXDIGITS+1];
RWB rwb; // speech card read/write block
// begin and end function pointers for state
// transition processing
int (CHANNEL::*begin_func)();
void (CHANNEL::*end_func)(int evtcode);
public:
void prep(int line);
int play();
int begin_state();
void cmplt_state(int evtcode);
// the states used in sample application
int wait_for_ring();
void wait_complete(int evtcode);
int offhook();
void offhook_cmplt(int evtcode);
int onhook();
void onhook_cmplt(int evtcode);
int hello();
void hello_cmplt(int evtcode);
int get_digits();
void get_digits_cmplt(int evtcode);
int product_info();
void product_info_cmplt(int evtcode);
int playback();
void playback_cmplt(int evtcode);
int invalid();
void invalid_cmplt(int evtcode);
int rec_msg();
void rec_msg_cmplt(int evtcode);
int goodbye();
void goodbye_cmplt(int evtcode);
};
// typedefs used for accessing function pointers
typedef int (CHANNEL::*INTPROC)();
typedef void (CHANNEL::*VOIDPROC)(int);
#endif